﻿using System;
using System.Collections;
using System.Collections.Generic;
using UFrame.ECS;
using UFrameCode;
using UnityEngine;

namespace UFrame
{
    /// <summary>
    /// 其实就是一个MonoBehaviour, 如果你用的UECS开发模式， 就不提倡使用awake 和 start进行初始化
    /// </summary>
    public class UPlayerMove : USystemMono
    {
        public override void Init()
        {
            StartCoroutine(SelfInit());
        }

        public IEnumerator SelfInit()
        {
            yield return new WaitForSeconds(3f);
            IsInit = true;        //我自己初始化完毕, 其他在Entity中的USystemMono脚本必须
                                  //等待我初始化之后，才会执行Init
        }

        public void OnCollisionEnter(Collision other)        //类型判断
        {
            var system = other.gameObject.GetComponent<USystemMono>();
            if (system.entity.IsComponent<Equip>())
            {
                Debug.Log("我碰撞的是一个装备");
            }
            if (system.entity.IsComponent<UComPerson>())
            {
                Debug.Log("我碰撞的是一个人物");
            }
            if (system.entity.IsComponent<UComPerson>() && system.entity.IsComponent<UComPersonRole>())
            {
                Debug.Log("我碰撞的是一个玩家控制的英雄");
            }
        }
    }
}